home *** CD-ROM | disk | FTP | other *** search
- Path: xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i117: SetFont 2.7 - change system font, Part01/01
- Message-ID: <11928@xanth.cs.odu.edu>
- Date: 26 Mar 90 02:30:17 GMT
- Sender: news@cs.odu.edu
- Reply-To: daveh@cbmvax.commodore.com (Dave Haynie)
- Lines: 766
- Approved: tadguy@cs.odu.edu (Tad Guy)
- X-Mail-Submissions-To: Amiga@cs.odu.edu
- X-Post-Discussions-To: comp.sys.amiga
-
- Submitted-by: daveh@cbmvax.commodore.com (Dave Haynie)
- Posting-number: Volume 90, Issue 117
- Archive-name: util/setfont-2.7/part01
-
- [ uuencoded executable enclosed. ...tad ]
-
- An improved, and probably the last, SetFont utility. This was
- done long ago, but apparently never got posted. It's much like
- SetFont V2.5, only it tries to be more sensible about loading
- fonts from disk that are already in memory. This one has
- source and binary, in a UUENCODED ZOO file.
-
- -Dave Haynie
-
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 1)."
- # Contents: README SetFont.cp SetFont.uu
- # Wrapped by tadguy@xanth on Sun Mar 25 21:29:52 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(2375 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X
- X
- X SetFont V2.7 by Dave Haynie
- X
- X
- X SetFont V2.7 is a public domain program designed to allow the system
- Xfont of the Amiga to be changed in various different ways. The main bug fix
- Xover V2.5 or V2.6 is a theoretically correct handling of resident vs. disk
- Xfonts. At least, it seems to work correclty this time around. The program
- Xis called from a shell or startup-sequence script, and has the form:
- X
- X SetFont [fontname [point [places]]]
- X
- X where:
- X
- X fontname Specifys the name of a standard Amiga
- X bitmapped font from the FONTS: directory.
- X While any font can in theory be used, the
- X system has trouble with very large ones,
- X and some programs may have trouble with any
- X font that's not 8x8.
- X
- X point Specifys the height of the font, in pixels.
- X If that actual size isn't found, the closest
- X available is substituted. The default for
- X this is 8.
- X
- X places There are several places the system keeps
- X fonts. When you change to a working font
- X you may want that font everywhere in the
- X system, in which case, no specifier is set.
- X Otherwise, the following places are known
- X by SetFont:
- X
- X BAR This is the "BarLayer" font for the WorkBench
- X screen. Among other things, the text in any
- X string gadgets BEFORE you select them comes
- X from this location.
- X
- X SCREEN This specified the default font for the
- X WorkBench screen. All menus and newly built
- X windows will inherit this font as their
- X default font. Technically speaking, this is
- X a font descriptor stored in the screen
- X structure.
- X
- X TITLES This specifies the font that's mainly used
- X for window title bars. Technically speaking,
- X this specifies the font of the screen's
- X RastPort.
- X
- X WINDOW This specifies the font for the current window.
- X It will case that window to be cleared. The
- X reason for this is that the window's font is
- X not a default, but inherited from the screen
- X and stored in the window's ConUnit. That
- X screen clear is the result of rebuilding the
- X window's ConUnit to bring in the new font.
- X
- X And that's about it. Please feel free to use this program and the
- Xsource code as you see fit. If you find any bugs, please let me know about
- Xthem.
- X
- X -Dave Haynie
- X
- X PLINK : hazy
- X bix : hazy
- X usenet : {rutgers,uunet}!cbmvax!daveh
- X Land : 284 Memorial Avenue
- X Gibbstown, NJ 08027
- END_OF_FILE
- if test 2375 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'SetFont.cp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'SetFont.cp'\"
- else
- echo shar: Extracting \"'SetFont.cp'\" \(10172 characters\)
- sed "s/^X//" >'SetFont.cp' <<'END_OF_FILE'
- X// =======================================================================
- X
- X/* SetFont 2.7 - by Dave Haynie
- X
- X BIX: hazy
- X Usenet: {uunet|rutgers}!cbmvax!daveh
- X PLINK: D-Dave H
- X Drink: Guinness
- X
- X BUSINESS:
- X
- X This program is complete, real, and true public domain software.
- X Do with it what you will as long as you don't remove my name from it.
- X Feel free to enhance this as you see fit. I may eventually make one
- X that's better....
- X
- X ABOUT IT:
- X
- X SetFont V2.7 cleans up all known bugs in previous SetFont versions.
- X The code is GREATLY cleaned up and simplified from SetFont V2.0. I no
- X longer free any fonts that were previously set. V2.0 did too much
- X freeing, but even with that, it is possible that another program could get
- X a pointer to the font or font descriptor in a window or screen and choke
- X if that's freed. That may not be good behavior, but this way's safer. A
- X future version will probably track fonts opened and closed by SetFont
- X itsself so that it can reclaim some of it's resources and still be
- X reasonably safe. Right now I have no way of knowing if the font or
- X descriptor I see is even really owned by SetFont. SetFont 2.7 also cleans
- X up the font open ordering, once and for all. Apparently, the font system
- X is broken or confused. In SetFont 2.5, I opened a disk font first, and
- X ended up with multiple copies of a single font in RAM. In SetFont 2.6,
- X I reversed the order and ended up missing disk fonts, as the software
- X took the closest front to what I wanted from RAM. Now I open both damn
- X fonts, take the closest to what I'm looking for from the two, and close
- X the other. Ties go to the RAM font.
- X
- X
- X CONFLICTS:
- X
- X There are a few potential problems the general notion of SetFont in
- X the Amiga system. First of all, many programs are written to support only
- X the topaz 8 (80 column) font (sloppy, I know, but that's life). If you're
- X a 60 column user, you've probably experienced this before. It's not a
- X problem with the Amiga as a whole, since most of the system will adjust
- X itself. But it may be a problem with programs that have a fixed idea of
- X what a font should look like. Most 80 column fonts work with most
- X applications, and an 80 column 8x8 font will work just about everywhere.
- X Some programs, like CLI for instance, have trouble with proportionally-
- X spaced fonts. The best thing to do is try out the font you like. One
- X final problem is that some applications ask the WorkBench screen to close
- X when they start up. It'll close if there's nothing else open on it, but
- X when it re-opens, it'll restart with the Preferences-selected font, not
- X the SetFont selected font. Of course, preferences doesn't support
- X arbitrary fonts (which is why this program is even necessary). Oh well,
- X maybe day.
- X*/
- X
- X#include <exec/types.h>
- X#include <exec/io.h>
- X#include <exec/ports.h>
- X#include <exec/memory.h>
- X#include <graphics/gfxbase.h>
- X#include <graphics/text.h>
- X#include <graphics/rastport.h>
- X#include <libraries/dos.h>
- X#include <libraries/dosextens.h>
- X#include <intuition/intuition.h>
- X#include <string.h>
- X#include <ctype.h>
- X#include <stdio.h>
- X#include <stdlib.h>
- X
- X// =========================================================================
- X
- X// Miscellaneous stuff.
- X
- Xextern TextFont *OpenDiskFont(const TextAttr *);
- X
- Xinline BPTR CADDR(APTR cptr) { return BPTR(ULONG(cptr) >> 2); }
- X
- Xinline void fail(char *a, char *b = NULL) { printf(a,b); exit(10); }
- X
- Xinline UWORD abs(UWORD x) { return (x > 0)?x:(-x); }
- X
- Xinline MsgPort *contask(MsgPort *port) {
- X return (MsgPort *) ((port->mp_SigTask->ln_Type == NT_PROCESS)
- X ? ((Process *)port->mp_SigTask)->pr_ConsoleTask
- X : NULL);
- X}
- X
- X// =========================================================================
- X
- X// This is the "smart" font class. SmartFont items stay around after the
- X// program exits if they appear to have been used. As it turns out, the
- X// Amiga font system looks somewhat broken. If I OpenDiskFont(), I load
- X// the font, even if it's in memory. If I OpenFonr(), I get the closest
- X// match to the font I want from the list of fonts in memory, not the
- X// big picture. So SmartFont now gets a bit smarter, and knows how to
- X// find the best match from both possible sources. The font opening order
- X// is important, since if I fetch a disk font, I'm sure to find it in RAM
- X// afterward.
- X
- Xclass SmartFont {
- X private:
- X static BOOL aok; // Font checks out
- X TextAttr sfattr; // Font descriptor
- X
- X public:
- X SmartFont(char *n, UWORD s);
- X
- X TextFont *font();
- X
- X TextAttr *attr() {
- X TextAttr *a = (TextAttr *)AllocMem(sizeof(TextAttr),MEMF_PUBLIC|MEMF_CLEAR);
- X a->ta_Name = (char *)AllocMem(strlen(sfattr.ta_Name)+1,MEMF_PUBLIC|MEMF_CLEAR);
- X strcpy(a->ta_Name,sfattr.ta_Name);
- X a->ta_YSize = sfattr.ta_YSize;
- X return a;
- X }
- X char *name() { return sfattr.ta_Name; }
- X UWORD size() { return sfattr.ta_YSize; }
- X};
- X
- XSmartFont::SmartFont(char *n, UWORD s = 8) {
- X strcat(strcpy(sfattr.ta_Name = new char[strlen(n)+6],n),".font");
- X sfattr.ta_YSize = (s>2)?s:8;
- X sfattr.ta_Style = sfattr.ta_Flags = 0;
- X
- X if (!aok) {
- X TextFont *f = font();
- X CloseFont(f);
- X aok = TRUE;
- X }
- X}
- X
- XTextFont *SmartFont::font() {
- X TextFont *memf, *dskf;
- X
- X if ((memf = OpenFont(&sfattr)) && sfattr.ta_YSize == memf->tf_YSize)
- X return memf;
- X
- X dskf = OpenDiskFont(&sfattr);
- X
- X if (!memf && !dskf) fail("Font \"%s\" not found\n",sfattr.ta_Name);
- X if (!memf && dskf)
- X return dskf;
- X else if (!dskf && memf)
- X return memf;
- X else if (abs(sfattr.ta_YSize - memf->tf_YSize) <=
- X abs(sfattr.ta_YSize - dskf->tf_YSize)) {
- X CloseFont(dskf);
- X return memf;
- X }
- X CloseFont(memf);
- X return dskf;
- X}
- X
- X// =========================================================================
- X
- X// These classes manage the places that fonts are hidden.
- X
- X// This is the basic place node
- X
- Xclass PlaceNode : public Node {
- X private:
- X static Window *pwin;
- X static Screen *pscr;
- X
- X public:
- X PlaceNode();
- X PlaceNode *next() { return (PlaceNode *)Node::next(); }
- X
- X void testwindow() { if (!pwin) fail("Window not found\n"); }
- X void testscreen() { if (!pscr) fail("Screen not found\n"); }
- X
- X Window *window() { return pwin; }
- X Screen *screen() { return pscr; }
- X
- X virtual void set(SmartFont *f) {
- X testwindow();
- X SetFont(window()->graphic(),f->font());
- X printf("\033c"); // Re-init window's conunit
- X (void)flushall();
- X }
- X};
- X
- X// Initialize the static stuff, once.
- X
- XPlaceNode::PlaceNode() {
- X if (pwin) return;
- X
- X StandardPacket *packet = new StandardPacket;
- X InfoData *info = new InfoData;
- X MsgPort *port = new StdPort;
- X
- X // Find the window
- X if (contask(port)) {
- X packet->sendio(contask(port),port,ACTION_DISK_INFO,CADDR(info));
- X (void)port->wait();
- X pwin = (Window *)info->id_VolumeNode;
- X } else
- X pwin = NULL;
- X delete port;
- X delete info;
- X delete packet;
- X
- X // Find the screen
- X pscr = (pwin) ? pwin->screen() : NULL;
- X}
- X
- X// These are the derived special nodes, one for each "place".
- X
- X#define WindowNode PlaceNode
- X
- Xclass ScreenNode : public PlaceNode {
- X public:
- X void set(SmartFont *f) {
- X testscreen();
- X if (strcmp(screen()->Font->ta_Name,f->name()) == 0)
- X screen()->Font->ta_YSize = f->size();
- X else
- X screen()->Font = f->attr();
- X }
- X};
- X
- Xclass TitleNode : public PlaceNode {
- X public:
- X void set(SmartFont *f) {
- X testscreen();
- X SetFont(screen()->graphic(),f->font());
- X }
- X};
- X
- Xclass BarNode : public PlaceNode {
- X public:
- X void set(SmartFont *f) {
- X testscreen();
- X SetFont(screen()->BarLayer->rp,f->font());
- X }
- X};
- X
- X// This is the place list, which links a number of place nodes, and also
- X// manages to go work like finding windows, etc.
- X
- Xclass PlaceList : public List {
- X public:
- X PlaceList(int argc, char **argv);
- X PlaceNode *first() { return (PlaceNode *)List::first(); }
- X};
- X
- X// The PlaceList constructor does a great deal of the work. It looks up
- X// the window data, then parses the command line to build the place
- X// list.
- X
- XPlaceList::PlaceList(int argc, char **argv) {
- X // Parse our input arguments
- X for (short i = 0; i < argc; ++i)
- X switch (toupper(argv[i][0])) {
- X case 'B': add(new BarNode); break;
- X case 'S': add(new ScreenNode); break;
- X case 'T': add(new TitleNode); break;
- X case 'W': add(new WindowNode); break;
- X default : break;
- X }
- X if (is_empty()) {
- X add(new BarNode);
- X add(new ScreenNode);
- X add(new TitleNode);
- X add(new WindowNode);
- X }
- X}
- X
- X// =========================================================================
- X
- X// Prints help notice
- X
- Xvoid PrintNotice() {
- X printf("SetFont V2.7 by Dave Haynie\n\n");
- X printf("Usage: SetFont [fontname [point [place]]]\n");
- X printf(" where:\n");
- X printf(" \2331mfontname\2330m is the font's name (e.g. \"topaz\")\n");
- X printf(" \2331mpoint\2330m is the point size (default is 8)\n");
- X printf(" \2331mplace\2330m pick the place, one or more of:\n");
- X printf(" \2331mBAR\2330m set the barlayer font only\n");
- X printf(" \2331mSCREEN\2330m set the screen font only\n");
- X printf(" \2331mTITLES\2330m set the screen titles only\n");
- X printf(" \2331mWINDOW\2330m set the window's font only\n\n");
- X printf("If no \2331mplace\2330m switch is given, everything is set.\n\n");
- X exit(0);
- X}
- X
- X// The main function
- X
- Xvoid main(int argc, char *argv[]) {
- X // Automatic help command
- X if (argc < 2 || argv[1][0] == '?') PrintNotice();
- X
- X // Process the command-line arguments, AmigaDOS style.
- X PlaceList *plist = new PlaceList(argc-2,&argv[3]);
- X
- X // Get the font if it's there.
- X SmartFont *font = new SmartFont(argv[1],atoi(argv[2]));
- X
- X // Here we apply all the requested changes.
- X for (PlaceNode *n = plist->first(); n->next(); n = n->next()) n->set(font);
- X
- X // And we're done!
- X exit(0);
- X}
- END_OF_FILE
- if test 10172 -ne `wc -c <'SetFont.cp'`; then
- echo shar: \"'SetFont.cp'\" unpacked with wrong size!
- fi
- # end of 'SetFont.cp'
- fi
- if test -f 'SetFont.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'SetFont.uu'\"
- else
- echo shar: Extracting \"'SetFont.uu'\" \(19168 characters\)
- sed "s/^X//" >'SetFont.uu' <<'END_OF_FILE'
- Xbegin 664 SetFont
- XM```#\P`````````,``````````L```<9```"CP```!P````;````````````U
- XM``(J````!0```#<````%````2````!````/I```'&4CG?OY+[P`T)$@D`$GY\
- XM`````"QX``0I3@!`*4\`3$*L`$B3R4ZN_MHF0"EK`)@`.$JK`*QG``!P(`V0(
- XMK0`$!H````"`*4``!&$``7H@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D`5-"!1
- XM4H!"9U*``D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`("``4X(?N
- XML2``(`!1RO_X(D\O"6```&PI:P`Z``0&K````(``!&$``0YA``#X*4``2"\`I
- XM)$`@*@`D9Q(L;`9D($`B*```*4$`.$ZN_X(B*@`@9QHD/````^U.KO_B*4``9
- XM4&<*Y8@@0"=H``@`I"!L`$@O"$AL```@:``D*6@`!`!41_D```9T<@`@/```E
- XM`(U@`B;!4<C__$ZZ$%QP`&`$("\`!"\`("P`+&<$($!.D$ZZ!QHL>``$(FP&Z
- XM9$ZN_F)*K`9H9P@B;`9H3J[^8DJL!FQG"")L!FQ.KOYB2JP`6&<((FP`6$ZN]
- XM_F)*K`!(9R0B+``\9P1.KO_<(BP`4&<$3J[_W"QX``1.KO]\(FP`2$ZN_H8@J
- XM'RYL`$Q,WW]^3G5P9&"`0>L`7$ZN_H!!ZP!<3J[^C$YU0^P`7'``3J[]V"E`L
- XM!F1GVDYU``!.50``*6T`"`,**6T`#`,>*6T`$`,R*6P"^@-&2'@`0DAX`2QP3
- XM`"\`+P!(;`,Z+P!(;`+^+P!.N@%L3^\`($Y=3G4``$Y5__Q![`+4*TC__"!M^
- XM__Q*D&<*(%!.D%BM__Q@[DY=3G4``$Y5``!.N@`63KH`5B\M``A.NA?26$].Y
- XM74YU``!.5?_\2JP&C&8V<`$I0`:,0>P"Y"M(__P@;?_\2I!G!EBM__Q@\D'L=
- XM`N0B;?_\L\AC#EFM__PB;?_\(%%.DF3EU.=4Y5__Q(YP`01^P%.+;\``!G0
- XM-`@K``(`&V8H""L``0`;9R`B*P`0(&L`!+'!8Q0@")"!+P`O`2\K`!Q.N@KD!
- XM3^\`#"938,9,WP@`3EU.=0``3E7__"\M``A.N@,V6$\K0/_\2H!F$DJL`Z!G<
- XM""!L`Z!.D@<`!@!"`M__Q.74YU3E4``$JM``AG"B\M``A.N@-D6$].74YU:
- XM3E7__"!L`Z`I;0`(`Z`@"$Y=3G5.5?_\2JT`"&8$<`!@'B\M``A.N@F$6$](!
- XM;?_\+P`K0``(3KH'?%!/("W__$Y=3G5(YS`R+'D```9T(&\`&")O`!PD;P`@A
- XM)F\`)"`O`"@B+P`L)"\`,"8O`#1.KOZD3-],#$YU3E7__$CG(`!P`"E``!A*%
- XMK0`(:R0D+0`(M*P%T&P:(@+G@4'L!V@B2-/!2I%G"B("YX'1P2`(8`AP"2E`:
- XM!1AP`$S?``1.74YU````````````````````````````````2JP&=&820^P%&
- XM!'``+'@`!$ZN_=@I0`9T*6P`5`2X2'@`*$AX`/IP`"\`+P!(;`3P+P!(;`36*
- XM+P!.NO\R3^\`($AX`!1.NA7.6$].=0```````````````$Y5__!(YP`@<`!%%
- XM[`4X*T#_^"M`__2T_```9R1*J@`89QHO"DAX__].N@F64$]*@&<&</\K0/_XV
- XM4JW_]"128-9*K?_X9P1P_V`$("W_]$S?!`!.74YU``````````!P84Y5```O*
- XM+0`(80983TY=3G5.5?_L2.<#("XM``A*AVX&<`!@``#$#(<````(;`)^""`'#
- XM(`=6@.2`Y8`N`$'L!<@D4"M(__BT_```9TXB*@`$LH=M/K*'9A(@4B)M__@BP
- XMB)^L!<P@"F```(`@*@`$D(<,@`````AM&B!*($K1QR"2(4``!")M__@BB)^LL
- XM!<P@"F!6*TK_^"128*P@!R(L!G`@!]"!4X!.NA-8(BP&<$ZZ%"Q0@"P`(`8@6
- XM!E:`Y(#E@"P`+P9.N@&^6$\K0/_P2H!G%"\&+P!.N@0^4$\O!V$`_S!83V`"O
- XM<`!,WP3`3EU.=0```````````````$Y5```B+0`(#($````P;0P,@0```#ENQ
- XM!'`!8`)P`$Y=3G4``$Y5__8O+0`(3KK]OEA/*T#_]DJ`9@1P_V`J+RT`$"\MP
- XM``P@;?_V+R@`!$ZZ%9Q/[P`,*T#_^DJL`!AG!'#_8`0@+?_Z3EU.=4Y5__A*T
- XMK`:09QPK;`:0__@@;?_X+Q`O+`:03KH#>%!/D<@I2`:02JT`"&8$<`!@,%BM-
- XM``@O+0`(3KK^7EA/*T#__$J`9@1P`&`6*VW__/_X(&W_^""M``@@;?_\6(@@B
- XM"$Y=3G5.50``2JT`"&<00J=ACEA/(&T`"%F(*4@&D'``3EU.=4Y5__1(YS``>
- XM2JT`#&8*+RT`"&',6$]@>$JM``AF#"\M``QA`/]86$]@9B!M``A9B"`068`KK
- XM0/_T*TC__+'L!I!G"$*G80#_-EA/+RT`#&$`_RQ83RM`__A*@&<P)"T`#"8MW
- XM__2V@F,$*T+_]"`M__0B`"!M``@B;?_X8`(2V%.!9/HO+0`(80#_6%A/("W_\
- XM^$S?``Q.74YU3E7_^"`M``@&@`````PO0```("\``'(`+'@`!$ZN_SHK0/_\1
- XM2JW__&8$<`!@-"`M``@&@`````P@;?_\(4``""\(2&P&E&$``0A03TJL!;QFC
- XM!BEM__P%O"!M__S0_``,(`A.74YU3E7__"\M``AAD%A/*T#__$J`9@8P?/__N
- XM(`A.74YU3E7_^$CG`2!A``"`<``I0``0*4``""E```PI0`7(*4`%S"E`!<`IW
- XM0`6\*4`%Q$JL!;1G3"`L!G`B+`6TTH!3@2`!(BP&<$ZZ$+`B+`9P3KH1A%"`B
- XM+@`@!R`'5H#D@.6`+@`O!V$`_Q983R1`M/P``&8$</]@#"\'+PI.N@%X4$]PT
- XM`$S?!(!.74YU3E7_^"ML!I3__$JM__QG)"!M__PK4/_X(FW__"!M__P@*``(\
- XM+'@`!$ZN_RXK;?_X__Q@UI'(*4@&F"E(!I1.74YU3E4``$CG`"`B;0`((&D`$
- XM!")M``PC2``$D<@BB"1M``A*DF8")(E*J@`$9P8@:@`$((DE20`$3-\$`$Y=#
- XM3G4``````````````````````````````````````````'!A3E4``%*L!J!3N
- XMK`5F("P%9DJ`:Q0@;`5>4JP%7B`M``@0@'(`$A!@&"`M``@"@````/](;`5:!
- XM+P!.N@3R4$\B`$Y=3G5.50``0JP&H$AM``PO+0`(2'K_JDZZ#M1/[P`,2&P%0
- XM6DAX__].N@3"4$\@+`:@3EU.=0``3E7_^"\M``A.NOHR6$\K0/_\2H!F!'#_'
- XM8"HO+0`0+RT`#"!M__PO*``$3KH1<$_O``PK0/_X2JP`&&<$</]@!"`M__A.4
- XM74YU````````<&%.5?_\("T`#"\`+RT`""M`__QA!E!/3EU.=4Y5_^A(YR$P?
- XM+BT`#$J';@9P_V```/(,AP````AL`GX((`<@!U:`Y(#E@"X`(&T`""M(__31C
- XMQ]^L!<Q#[`7()%$K2/_P*TG_^+3\``!G``"B($H@*@`$($K1P"M(_^PD+?_PK
- XMM<)C%B)M__0BBB-'``0F;?_X)HEP`&```(RUPF8>(E(F;?_T)HD@*@`$(@#2'
- XMAR=!``0B;?_X(HMP`&!H(FW_]+/(9`B?K`7,</]@6+/(9BY*DF<.(A*T@6,(^
- XMGZP%S'#_8$+?J@`$2I)G$+229@P@0B`H``31J@`$))!P`&`F*TK_^"MM_^S_*
- XMZ"128`#_6B!M__@@K?_TD<@B;?_T(H@C1P`$(`A,WPR$3EU.=4Y5__!(YR```
- XM<``K0/_\*T#_^"M`__`@;0`($A`,`0`M9@QP`2M`__@K0/_P8`P,`0`K9@9PB
- XM`2M`__AP`"!M``@B+?_X$#`8`"\`3KKZC%A/2H!G*B`M__QR"DZZ#EPB+?_X!
- XM4JW_^'0`(&T`"!0P&`#0@@2`````,"M`__Q@O$JM__!G!$2M__P@;0`,(*W_%
- XM_"`M__A,WP`$3EU.=4Y5__)(YP`@0BW_^W`(*T#__%.M__P@+0`,(@`"@0```
- XM``]![`4<T<$B+?_\&Y`8\^B`*T``#`*`#____RM```Q*K0`,9LQ![?_ST>W_E
- XM_")()&T`"!399OQP")"M__Q,WP0`3EU.=4Y5```O+0`,+RT`"&&,4$].74YU$
- XM``!.5?_P2.<@('`+*T#_\$(M__]3K?_P("T`#"(``H$````'!H$````P)"W_^
- XM\!N!*/3F@"M```P"@!____\K0``,2JT`#&;,0>W_]-'M__`B2"1M``@4V6;\O
- XM<`N0K?_P3-\$!$Y=3G5.50``+RT`#"\M``AAC%!/3EU.=0``3E7_\$CG`"!P"
- XM"RM`__!"+?__4ZW_\"`M``QR"DZZ#%P&@0```#`@+?_P&X$(]"`M``QR"DZZN
- XM#$0K0``,2JT`#&;00>W_]-'M__`B2"1M``@4V6;\<`N0K?_P3-\$`$Y=3G4`D
- XM`$Y5``!P`"!M``@0$$/L`ZG3P!`1"````V<&4JT`"D("T`"$Y=3G4`````=
- XM``!P84Y5__A(YP$`(&T`#$H89OQ3B)'M``PN""!M``A*&&;\4XB1[0`((`@B7
- XM;0`(T\`K2?_X(BT`$+Z!8P(N`2`'(&T`#&`"$MA3@&3Z(&W_^$(P>``@+0`(E
- XM3-\`@$Y=3G4``$Y5__PK;0`(__P@;?_\2A!G&'``$!`O`$ZZ`!I83R!M__P03
- XM@%*M__Q@X"`M``A.74YU```@+P`$#```86T*#```>FX$!```($YU``!.5?_XM
- XM+RT`"$ZZ]>983RM`__A*@&8$</]@2"!M__@(*``#``-G$DAX``)"IR\M``A.K
- XMNO?V3^\`#"\M`!`O+0`,(&W_^"\H``1.N@U63^\`#"M`__Q*K``89P1P_V`$+
- XM("W__$Y=3G4``$Y5_^Q(YR`@)&T`#"`M``@B*@`8)`$"@@```#$K0/_T2H)GT
- XM!G#_8``"R"`!`H```(``5L)$`DB"2,(;0O_^2JH`%&8``)((`0`"9@``BG``Y
- XM)4``#`RM_____P`(9P`"DB\*3KH"E%A/2H!G#`CJ``4`&W#_8``">@CJ``$`T
- XM&THM__YG#B`J`!0B`$2!)4$`#&`(("H`%"5```Q3J@`,("H`#$J`:Q0@:@`$H
- XM4JH`!"`M``@0@'(`$A!@%B`M``@"@````/\O"B\`80#_-E!/(@`@`6```AP(K
- XM*@`"`!MG:"(M``@,@?____]F!G``8``"`AM!__]*+?_^9R8,@0````IF'G`">
- XM+P!(;`4P+RH`'"M`__!.NOZ$3^\`#"M`__A@''`!+P!(;?__+RH`'"M`__!.)
- XMNOYF3^\`#"M`__AP_RM```A@``#\".H``0`;2BW__F=6(BT`"`R!_____V=*8
- XM5*H`#`R!````"F8B(&H`!%*J``00O``-2JH`#&L,+PI(>/__80#^?%!/4JH`T
- XM#"!J``12J@`$("T`"!"`2JH`#&L``5!P_RM```@@*@`$D*H`$"M`__!*@&<``
- XM`(((*@`&`!IG7DAX``)"IR\J`!Q.NO7R3^\`#"M`_^Q*+?_^9T)3K?_L("W_<
- XM[$J`:S9"IR\`+RH`'$ZZ]<Q/[P`,2'@``4AM__TO*@`<3KKY1$_O``Q*K``8[
- XM9@P0+?_]#```&F?`3G$O+?_P+RH`$"\J`!Q.NOUJ3^\`#"M`__A@!G``*T#_[
- XM^"(M__@,@?____]F"`CJ``4`&V`,LJW_\&<&".H`!``;2BW__F<.("H`%"(`H
- XM1($E00`,8!@(*@`"`!MG"'``)4``#&`(("H`%"5```P@:@`0)4@`!"(M``@,S
- XM@?____]G+%.J``P@*@`,2H!K$"!J``12J@`$$(%P`!`08!`"@0```/\O"B\!^
- XM80#].%!/("H`&`*`````,$J`9P1P_V`2(BW_]`R!_____V8$<`!@`B`!3-\$V
- XM!$Y=3G5.50``(&T`"$JH`!1G#`@H``,`&V8$<`!@/"\L`Z1.NO.(6$\@;0`(H
- XM(4``!"%``!!*@&8*<`PI0`48</]@&"%L`Z0`%`*H____\P`8<``A0``,(4``Q
- XM"$Y=3G4``````````'!A3E7_\$CG`3`D;0`(#*P````@!J1L``"0$A(,`0`@A
- XM9PP,`0`)9P8,`0`*9@12BF#H2A)G<B`L!J3E@%*L!J1![`:LT<`K2/_\#!(`/
- XM(F8H4HH@BDH29PH,$@`B9P12BF#R2A)F#$AX``%.N@@V6$]@G$(24HI@EB!M'
- XM__P@BDH29Q@2$@P!`"!G$`P!``EG"@P!``IG!%**8.1*$F8"8`A"$E**8`#_L
- XM:$JL!J1F!B!L`$A@!$'L!JPI2`:H2JP&I&8``(9![`6@(DA'[`<L)MDFV2;95
- XM)MDVD29L`$@B:P`D2'@`*"\I``1(;`<L3KKZI$_O``Q![`<L(@@D/````^XLS
- XM;`9D3J[_XBE`!VP@+`=L*4`'='($*4$'<"E`!WPI00=XY8`K0/_PD\DL>``$A
- XM3J[^VBM`__0@;?_P(FW_]"-H``@`I'X`8#(L;`9D3J[_RBE`!VPL;`9D3J[_7
- XMQ"E`!W1![`6R(@@D/````^TL;`9D3J[_XBE`!WQ^!"`'(`<`@```@`&!K`=H^
- XM(`<@!P"```"``H&L!W``K```@`,'>$JL!31G!'``8`8@/```@``N`$*L!50@#
- XM!R`'`(`````!*4`%4'`!*4`%=B`'(`<`@`````(I0`5R<`(I0`68(`<@!P"`X
- XM````@"E`!91!^@=2*4@`,"\L!J@O+`:D3KH`(E!/0J=.NNZZ6$],WPR`3EU.^
- XM=0``````````````````3OD```:$````````````````<&%.5?_$2.<@('``<
- XM&WP`(/_[<@`K0?_V=/\K0O_R0>W_T!M`__$;0/_\&T#__1M`__X;0/__*T'_F
- XMY"M!_^@K2/_,(&T`"$H09U00$`)``/]R&%U!:TBP>Q`(9O9.^Q`$`"-@```L&
- XM`"!@```>`"M@```0`"U@```"&WP``?__8!@;?``!__Y@$!M\``'__6`(&WP`N
- XM`?_\3G%2K0`(8*0@;0`($A`,`0`P9@H;?``P__M2K0`((&T`"`P0`"IF$B)M4
- XM``P@45B1*U#_]E*M``A@$$AM__8O"$ZZ]F)03]&M``@@;0`($A`,`0`N9C!2-
- XMK0`((&T`"`P0`"IF$B)M``P@45B1*U#_\E*M``A@$$AM__(O"$ZZ]B903]&M^
- XM``@@;0`($A`,`0!L9@P;?``!__%2K0`(8`H,`0!H9@12K0`((&T`"!`04JT`]
- XM"!M`__`"0`#_<C!=06L``FZP>Q`(9O1.^Q`$`&-@``)$`'-@``'\`%A@``&*$
- XM`'A@``&$`'!@``%L`&]@``$:`'5@``#P`&1@```"2BW_\6<,(FT`#"!16)$@^
- XM$&`*(FT`#"!16)$@$"M`_^Q*@&H*<@%$K?_L*T'_Z$JM_^AG!'`M8`Q*+?_^;
- XM9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0+?_]@H!*@6<(4JW_S%*M_^0O$
- XM+?_L+RW_S$ZZ]LI03RM`_\A*K?_R:@9P`2M`__(@+?_((BW_\I*`*T'_Q$J!=
- XM;S(@;?_,(DC3P2(`)$A@`A+:4X%D^G``$"W_^R(M_\0@;?_,8`(0P%.!9/H@:
- XM+?_R*T#_R-&M_^1![?_0*TC_S$HM__]G``%<&WP`(/_[8``!4DHM__%G#")MR
- XM``P@45B1(!!@"B)M``P@45B1(!`K0/_L8`#_7DHM__%G#")M``P@45B1(!!@7
- XM"B)M``P@45B1(!`K0/_L2BW__&<2(&W_S!"\`#!2K?_,<@$K0?_D+P`O+?_,F
- XM3KKU=%!/*T#_R&``_R0;?``P__M*K?_R:@9P""M`__)*+?_Q9PPB;0`,(%%8P
- XMD2`08`HB;0`,(%%8D2`0*T#_[$HM__QG'B!M_\P0O``P4JW_S"!M_\P0O`!X7
- XM4JW_S'("*T'_Y"\`+RW_S$ZZ](Y03RM`_\@,+0!8__!F`/ZT2&W_T$ZZ]F)82
- XM3V``_J8B;0`,(%%8D2)0*TG_S++\``!F"$'L!;@K2/_,(&W_S$H89OQ3B)'MR
- XM_\PK2/_D2JW_\FLN(BW_\K'!;R8K0?_D8"!P`2M`_^0B;0`,(%%8D2`0&T#_V
- XMT$(M_]%@!G``8```J"(M_^0D+?_VM(%L"'``*T#_]F`$DZW_]DHM__]G0E.M5
- XM_^0@+?_D2H!K&'``(&W_S!`04JW_S"\`(&T`$$Z06$]@W%.M__8@+?_V2H!K+
- XM5'``$"W_^R\`(&T`$$Z06$]@XE.M__8@+?_V2H!K$G``$"W_^R\`(&T`$$Z0=
- XM6$]@XE.M_^0@+?_D2H!K&'``(&W_S!`04JW_S"\`(&T`$$Z06$]@W"`M``A,I
- XMWP0$3EU.=4Y5__8K;0`0__8@;0`,$!!2K0`,&T#__TH`9W8,```E9C`@;0`,N
- XM#!``)68&4JT`#&`@+RT`"$AM__8O"&$`^TQ/[P`,*T#_^DJ`9P8K0``,8+A*C
- XMK``T9R8(+0`'__]G'G``$"W__R\`(&T`"$Z06$\@;0`,$!!2K0`,&T#__W``M
- XM$"W__R\`(&T`"$Z06$]@`/]Z3EU.=0```````'!A2H!J```>1(!*@6H```Q$W
- XM@6$``"!$@4YU80``&$2`1(%.=4J!:@``#$2!80``!D2`3G4O`DA!-`%F```BZ
- XM2$!(04A"-`!G```&A,$P`DA`-`"$P3`"2$(R`B0?3G4O`W80#$$`@&0```;AZ
- XMF5%##$$(`&0```;IF5E##$$@`&0```;EF55#2D%K```&XYE30S0`YJA(0D)"5
- XMYJI(0X#!-@`P`C0#2$'$P9""9```"%-#T(%D_G(`,@-(0^>X2$##0"8?)!]."
- XM=2YY````3$ZY```$$"\\````%$ZY```"0"!"(D,D`"8!2$)(0\3!QL#`P=1#5
- XM2$)"0M"")@DD"$YU(&\`"")O``1*&6;\4XD2V&;\("\`!$YU(&\`!")O``@2K
- XM&+(99@A*`6;V<`!.=6X$</].=7`!3G4@;P`((F\`!!+89OP@+P`$3G4``"!O@
- XM``1*&&;\4XB1[P`$(`A.=0``3E7_^$CG`2!^`$7L!VB^K`70;!Y*DF<4""H`L
- XM`@`#9P)@"B\J``1.N@'X6$]2AU"*8-PO+0`,+RT`"$ZZYLY03TS?!(!.74YU0
- XM3E7__'``(CP``#``+'@`!$ZN_LX"@```,``K0/_\2H!F!'``8"1*K``P9QH@3
- XM;``P3I!*@&8$<`!@$$*G2'@`%$ZZ_W903R`M__Q.74YU8;!.=0``2JP&=&829
- XM0^P&4'``+'@`!$ZN_=@I0`9T*6P`5`802'@`/$AX`/IP`"\`+P!(;`8\2&P&$
- XM(DAL!@0O`$ZZZ(!/[P`@4X!G!'#_8`)P`$YU``!.5?_\2.<!`$JL`#!G!$ZZ&
- XM_TQ"K``8(BT`""0M``PF+0`0+&P&9$ZN_]8N``R'_____V82+&P&9$ZN_WPI2
- XM0``8<`4I0`48(`=,WP"`3EU.=4Y5__Q(YP$`2JP`,&<$3KK^_$*L`!@B+0`(1
- XM)"T`#"8M`!`L;`9D3J[_T"X`#(?_____9A(L;`9D3J[_?"E``!AP!2E`!1@@7
- XM!TS?`(!.74YU3E7_^$CG,0)*K``P9P1.NOZL0JP`&"`M`!!3@"]``!`B+0`(K
- XM)"T`#"8O`!`L;`9D3J[_OBX`#(?_____9A(L;`9D3J[_?"E``!AP%BE`!1@@8
- XM+0`0#(`````"9QP,@`````%G"DJ`9B(@+0`,8!P@!R`'T*T`#&`2(BT`"'0`'
- XM=@`L;`9D3J[_ODYQ3-]`C$Y=3G4``$Y5``!*K``P9P1.NOX<(BT`""QL!F1.2
- XMKO_<<`!.74YU```#[`````(````````9H```&90````!`````0``$Z(````$Y
- XM````!@``&8X```."```!$@````X````````#\@```^D```*/3E7__$CG`!"_A
- XM[``$90`)JB9M``BV_```9@Q(>``(3KH)R%A/)D`O+0`,3KH)GEA/7(`O`$ZZ&
- XM";)83R:`+RT`#"\`3KH)[%!/2&P`="\`3KH)L%!/,BT`$@Q!``)C"'``,"T`J
- XM$F`"<`@W0``$<``70``'%T``!DIL!GIF&"\+82!83R\`*T#__$ZZ"5)83SE\\
- XM``$&>B`+3G%,WP@`3EU.=4Y5__A(YS@0O^P`!&4`"0HF;0`(+PM.N@EF6$\KB
- XM0/_\2H!G#C0K``0@0+1H`!1G``#&+PM.N@D>6$\K0/_X2JW__&8<2H!F&"!3[
- XM+PA(;`!Z3KH))E!/2'@`"DZZ"0I83TJM__QF#DJM__AG""`M__A@``"$2JW_H
- XM^&8,2JW__&<&("W__&!P(&W__#`H`!0R*P`$)`&40`*"``#__PR"`````&(,M
- XM)`&40`*"``#__T2"(&W_^#`H`!0F`99``H,``/__#(,`````8@R20`*!``#_"
- XM_T2!)@&T@V(.+PA.N@A>6$\@+?_\8`XO+?_\3KH(3EA/("W_^$S?"!Q.74YUQ
- XM3E7_Y$CG,#*_[``$90`(#"9M``BV_```9@Q(>``23KH(*EA/)D`@"R!+L/P`9
- XM`&8.2'@`#DZZ"!183R!`8`*1R"`+0>P`D"=(``Y*K`9\9P8@"V```6A"K?_P$
- XM2'@`1$ZZ!^I83Y'((D`C2``$(HAR!1-!``AT`!-"``DC2``*(T@`#D)I`!(BJ
- XM0"M)__#2_``4)$`E20`*%4$`"!5"``DE2``8)4@`#C5\`#``$B5``!1(>``DO
- XM*T#__$ZZ!Y!83Y'(+P@O""M`__@K2/_L3KH'0%!/*T#_[$J`9@Y(>``.3KH'2
- XM:EA/($!@`I'(*VW_[/_L(&W_[")H`!`0*0`(*TC_]`P```UF!B!I`*1@`I'(`
- XML/P``&=N$"D`"`P```UF!B!I`*1@`I'(("W_^"(`Y(ET%'89(FW__".#*`@C<
- XM@2@4=@`C@R@8(X,H'"1Q*``L;?_T(XXH!"5.``XO,2@`+P@K0?_D*TC_Z$ZZ:
- XM!JQ03R\M__1.N@;`6$\@;?_X*6@`'`9\8`1"K`9\+RW_]$ZZ!NA83R\M__A.I
- XMN@;>6$\O+?_\3KH&U%A/2JP&?&<*(FP&?"!I`"Y@`I'(*4@&@"`+3-],#$Y=@
- XM3G5.5?_N2.<`,+_L``1E``9()FT`"+;\``!F#$AX``Y.N@9F6$\F0"`+($NPH
- XM_```9@Y(>``.3KH&4%A/($!@`I'((`L@2R)(6(D@B2%(``A"J``$<@`100`,7
- XM$4$`#29(0FW__C`M__Y(P+"M``QL``%6,"W__B(`2,'E@2)M`!`@<1@`$A!(D
- XM@4C!1>P#J=7!$A((`0`!9PX2$$B!2,$$@0```"!@$B(`2,'E@2!Q&``0$$B`-
- XM2,`B`'`@!$``"&L``/ZRNP`(9O).^P`&````5V```-````!48```C````%-@%
- XM``!(````0F````)"K?_Z2'@`$DZZ!9)83R\`*T#_^F$`_3Q83T'L`*@B0"-(B
- XM``XB"R!++P`O""M`__8K0/_Z3KH%HE!/8```ED*M__)(>``23KH%5%A/+P`KH
- XM0/_R80#\_EA/0>P`F")`(T@`#B(+($LO`"\(*T#_]BM`__).N@5D4$]@6$*M$
- XM_^Y(>``23KH%&%A/+P`K0/_N80#\PEA/0>P`H")`(T@`#B(+($LO`"\(*T#_H
- XM]BM`_^Y.N@4H4$]@'$*G80#\F%A/(@L@2R\`+P@K0/_V3KH%#%!/3G%2;?_^T
- XM8`#^H"`+($LB4$J19@``RD*M__I(>``23KH$K%A/+P`K0/_Z80#\5EA/0>P`$
- XMJ")`(T@`#B(+($LO`"\(*T#_]BM`__I.N@2\4$]"K?_R2'@`$DZZ!')83R\`R
- XM*T#_\F$`_!Q83T'L`)@B0"-(``XB"R!++P`O""M`__8K0/_R3KH$@E!/0JW_Q
- XM[DAX`!).N@0X6$\O`"M`_^YA`/OB6$].N@/`6$](.
- XM;`(`3KH#MEA/2&P",$ZZ`ZQ83TAL`F).N@.B6$]"ITZZ`XA83TYU3E7_]$CGQ
- XM`""_[``$90`#)DZZ`U@,K0````(`"&T0(FT`#"!I``00$`P``#]F!&$`_U`@-
- XM+0`(58`@;0`,T/P`#"\(+P!"IV$`_)9/[P`,(&T`#"\H``@K0/_\3KH#&EA/Q
- XM`H```/__+P`@;0`,+R@`!$*G80#Y"$_O``P@;?_\*U#_]"M`__@@;?_T2I!G1
- XM&B)H``XD42\M__@O"$Z24$\@;?_T*U#_]>0J=.N@+66$],WP0`3EU.=;_L4
- XM``1E``)V,"P&>"(`4D$Y009X2D!F-$AX`"%(;`*:3KH"A%!/*4`&=$J`9AI"9
- XMIR\\``.`!$ZZ`E!03TAX`!1.N@*(6$]@!G``8`)P`$YUO^P`!&4``B8P+`9X@
- XM4T`Y0`9X2D!F#"\L!G1.N@*"6$]@`G``3G5.5?_\2.<`$+_L``1E``'X)FT`@
- XM"$JL!H!F&$*G2&P"K$ZZ`D103TAX``I.N@(H6$]@`G``(FP&@"!I`4XO+0`,#
- XM+T@`"&$`^*A83R\`(&\`""\H``Q.N@'.4$],WP@`3EU.=4Y5__A(YP`0O^P`K
- XM!&4``98F;0`(2JP&@&880J=(;`*L3KH!XE!/2'@`"DZZ`<983V`"<``K;`:`9
- XM__P@;?_\T/P`5"\M``PO2``(80#X0%A/+P`O+P`(3KH!:E!/3-\(`$Y=3G5.@
- XM5?_\2.<`,+_L``1E``$R)FT`"$JL!H!F&$*G2&P"K$ZZ`7Y03TAX``I.N@%BQ
- XM6$]@`G``(FP&@"!I`"@D;0`,(E(O"2\03KH`_E!/2H!F%")L!H`@:0`H(FT`#
- XM##%I``0`!&!>+SP``0`!2'@`"$ZZ`4Y03R)M``P@42\(*T#__$ZZ`-!83U*`1
- XM+SP``0`!+P!.N@$L4$\@;?_\((`B;0`,(%$O""\`3KH!$%!/(&T`#")M__PS8
- XM:``$``0@;`:`(4D`*$S?#`!.74YU3E7__$CG`!"_[``$90``:"9M``A*K`9\E
- XM9AA"ITAL`KY.N@"T4$](>``*3KH`F%A/8`)P`"ML!GS__"\M``QA`/<>6$\OA
- XM`"!M__PO*``R3KH`1%!/2&P"T$ZZ`'Q83TZZ`&I,WP@`3EU.=4[Y`````$[Y.
- XM````R$[Y```9C$[Y```9W$[Y`````$[Y```:$$[Y````X$[Y`````$[Y````=
- XM+$[Y```!"$[Y```"\$[Y```"'$[Y`````$[Y```#3$[Y```9Q$[Y```"0$[YK
- XM```$:$[Y```#($[Y```)0$[Y````&$[Y````3$[Y````]$[Y```9_$[Y````V
- XM'````^P````,````````"@X```G````)_```"?````H4```*"```"AH```H"6
- XM```*,@``"<P```GJ```)N@````$````(```)K@````$````)```)]@````<`7
- XM```*```*.```"BP```G&```)Y```"B8```G2```)M`````,````+```)V```U
- XM"B````G>`````````_(```/I````'+_L``1E``!*+RP#F$AL`U!.N@!*4$\I#
- XM0`:$2H!F&D*G+SP``X`"3KH`+E!/2'@`%$ZZ`#!83V`"<`!.=;_L``1E```.L
- XM+RP&A$ZZ`!Y83TYU3OD``!F,3OD`````3OD```$(3OD```)`3OD```#T<&$`-
- XM``/L`````@````````!D````4@````,````*````:@```%@```!>````````4
- XM`_(```/I````&[_L``1E``!.+RP#G$AL`V1.N@!(4$\I0`:(2H!F''``+P`OS
- XM`$AL`W9.N@`V3^\`##!\__\I2`:(8`*1R$YUO^P`!&4``!`O+`:(3KH`&EA/R
- XM3G4``$[Y```9C$[Y```!"$[Y```!V$[Y````]````^P````"`````````&(`M
- XM``!6`````@````H```!H````7`````````/R```#Z0````````/R```#Z0``H
- XM``````/R```#Z@```9T``````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````&1O<RYL:6)R87)Y`&1O<RYL:6)R87)Y`"YF;VYTW
- XM`$9O;G0@(B5S(B!N;W0@9F]U;F0*``````E"````````"'@````````(%```Q
- XM``````>R`````%-E=$9O;G0@5C(N-R!B>2!$879E($AA>6YI90H*`%5S86=EK
- XM.B!3971&;VYT(%MF;VYT;F%M92!;<&]I;G0@6W!L86-E75U="@``("!W:&5RL
- XM93H*`"`@FS%M9F]N=&YA;66;,&T@(&ES('1H92!F;VYT)W,@;F%M92`H92YGC
- XM+B`B=&]P87HB*0H``"`@FS%M<&]I;G2;,&T@("`@(&ES('1H92!P;VEN="!S(
- XM:7IE("AD969A=6QT(&ES(#@I"@`@()LQ;7!L86-EFS!M("`@("!P:6-K('1HU
- XM92!P;&%C92P@;VYE(&]R(&UO<F4@;V8Z"@``("`@()LQ;4)!4ILP;2`@("`@+
- XM("!S970@=&AE(&)A<FQA>65R(&9O;G0@;VYL>0H`("`@()LQ;5-#4D5%3ILPF
- XM;2`@("!S970@=&AE('-C<F5E;B!F;VYT(&]N;'D*`"`@("";,6U4251,15.;F
- XM,&T@("`@<V5T('1H92!S8W)E96X@=&ET;&5S(&]N;'D*`"`@("";,6U724Y$V
- XM3U>;,&T@("`@<V5T('1H92!W:6YD;W<G<R!F;VYT(&]N;'D*"@``268@;F\@V
- XMFS%M<&QA8V6;,&T@<W=I=&-H(&ES(&=I=F5N+"!E=F5R>71H:6YG(&ES('-EB
- XM="X*"@!I;G1U:71I;VXN;&EB<F%R>0!38W)E96X@;F]T(&9O=6YD"@!7:6YDE
- XM;W<@;F]T(&9O=6YD"@`;8P`````'/```````````````````!XP````\````M
- XM/@````!2871S(0````+T``$!```&``,``````````````Q(``0$```8`"P``B
- XM```````````#)@`!`0``!@`3``````````````````$!```&``,`````````/
- XM`````````&=R87!H:6-S+FQI8G)A<GD`````9&ES:V9O;G0N;&EB<F%R>0``Y
- XM0V]U;&1N)W0@;W!E;B!$:7-K1F]N="!,:6)R87)Y`````````"$````A````+
- XM`````@``("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@("!($!`0$!`02
- XM$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!`0$!`0$!`0$![
- XM`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@("`@("$!`0$"`@;
- XM("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0@
- XM$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!2
- XM$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0(````/__````R
- XM#@`.````````````````*BH@4W1A8VL@3W9E<F9L;W<@*BH``/__````!``$T
- XM````````!,````2L15A)5```__\````$``0````````$Z@````!I;G1U:71IH
- XM;VXN;&EB<F%R>0`````````P,3(S-#4V-S@Y86)C9&5F``````T*`````(``Y
- XM```%6@``````````````````````````````````````````!7P`````````@
- XM`````````````````````````````````````````````````````````````
- XM``````````````````!C;VXZ,3`O,3`O,S(P+S@P+P`J````````````````?
- XM```````````````````````````H*BH@57-E<B!!8F]R="!297%U97-T960@%
- XM*BH``/__````#@`.````````!=0`````__\````$``0`````````````!?!#%
- XM3TY424Y510``__\````$``0````````&&`````!!0D]25`#__P````0`!```$
- XM``````8V`````&EN='5I=&EO;BYL:6)R87)Y```````````````````````$&
- XM`````^P````&`````0```N0```+4````J````*````"8````D`````(````"F
- XM```"Z````M@````"`````P```NP```+<````#`````8```9(```&+@``!A0`#
- XM``7\```%6@``!3@```3\```$Y@``!.(```,B```##@```OH````````#\@``4
- XM`^D````%(&\`!""(6)!"J``$(4@`"$YU``````/P`````E].97=,:7-T````0
- XM``````````/R```#Z0```#=(YSP@)B\`&!0O`!]Z_R\%3KD```!X$@!P`!`!Q
- XM*`!R_[*`6(]F!'``8&8O/``!``%(>``B3KD````<)$`J"E"/9@XO!$ZY````I
- XMC'``6(]@0"5#``H50@`)%7P`!``(0BH`#A5$``]"ITZY````9"5``!!*@UB/1
- XM9PHO"DZY````H&`*2&H`%$ZY`````%B/(`I,WP0\3G4O"B1O``A*J@`*9PHOY
- XM"DZY````M%B/%7P`_P`(</\E0``4<``0*@`/+P!.N0```(Q(>``B+PI.N0``)
- XM`#1/[P`,)%].=0`````#[`````$````'````B`````@````*````-@```!(`=
- XM``!J````P@```$8```!\````I@```,X````````#\`````$N3#@`````*@``R
- XM``$N3#<`````4`````$N3#8`````@@````$N3#$`````D`````$N3#$T````1
- XMK`````$N3#$R````C`````-?1&5L971E4&]R=`````"6`````U]#<F5A=&50,
- XM;W)T```````````````#\@```^D````%+PXL>0``!H@@;P`(3J[_XBQ?3G4`M
- XM``/L`````0````8````$`````````_`````$7T]P96Y$:7-K1F]N=```````$
- XM```````````#\@```^D```!(2.<!!BQY````0"XO`!`J;P`43J[_E$S?8(!.&
- XM=2\.+'D```!`3.\``P`(3J[_.BQ?3G4``"\.+'D```!`(F\`""`O``Q.KO\N?
- XM+%].=2\.+'D```!`3.\#```(3J[_$"Q?3G4``"\.+'D```!`(F\`"$ZN_MHL*
- XM7TYU+PXL>0```$`@+P`(3J[^MBQ?3G4O#BQY````0"`O``A.KOZP+%].=2\.'
- XM+'D```!`(F\`"$ZN_IXL7TYU+PXL>0```$`B;P`(3J[^F"Q?3G4O#BQY````A
- XM0$SO`P``"$ZN_I(L7TYU```O#BQY````0"!O``A.KOZ`+%].=2\.+'D```!`#
- XM(F\`"$ZN_F(L7TYU+PXL>0```$`B;P`(("\`#$ZN_=@L7TYU```#[`````T`T
- XM```&```!#````/@```#D````S````+@```"D````D````'P```!H````4```;
- XM`#@````@````!@````````/P`````U]/<&5N3&EB<F%R>0```0@````$7T-LU
- XM;W-E3&EB<F%R>0```````/0````#7U=A:710;W)T````````X`````)?4'5TF
- XM37-G`````,@````"7U)E;5!O<G0```"T`````E]!9&10;W)T````H`````-?>
- XM1G)E95-I9VYA;`````",`````U]!;&QO8U-I9VYA;````'@````#7T9I;F14&
- XM87-K````````9`````)?061D2&5A9````$P````"7T9R965-96T````T````!
- XM`U]!;&QO8TUE;0```````!P````"7T%L97)T`````````````````_(```/I"
- XM````$"\.+'D```:$(F\`""!O``Q.KO^^+%].=2\.+'D```:$(&\`"$ZN_[@L9
- XM7TYU+PXL>0``!H0B;P`(3J[_LBQ?3G4```/L`````P````8````P````'```F
- XM``0````````#\`````-?0VQO<V5&;VYT```````L`````U]/<&5N1F]N=```=
- X=`````!@````"7U-E=$9O;G0``````````````_(L=
- X``
- Xend
- Xsize 13664
- END_OF_FILE
- if test 19168 -ne `wc -c <'SetFont.uu'`; then
- echo shar: \"'SetFont.uu'\" unpacked with wrong size!
- fi
- # end of 'SetFont.uu'
- fi
- echo shar: End of archive 1 \(of 1\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have the archive.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
- Mail comments to the moderator at <amiga-request@cs.odu.edu>.
- Post requests for sources, and general discussion to comp.sys.amiga.
-